import * as XLSX from 'xlsx';
import { saveAs } from 'file-saver';


/**
 * 导出Excel（公共方法）
 * @param {Array} data - 要导出的数据（数组对象）
 * @param {String} fileName - 导出的文件名（不需要后缀）
 * @param {Object} headerMap - 表头映射（如 { deviceName: '设备名称', deviceCode: '设备编码' }）
 */
export function exportExcel(data, fileName = '导出数据', headerMap = {}) {
  if (!data || data.length === 0) {
    console.warn('导出数据为空！');
    return;
  }

  // 1. 格式化数据（使用headerMap替换原始字段名）
  const exportData = data.map(item => {
    const formattedItem = {};
    Object.keys(headerMap).forEach(key => {
      formattedItem[headerMap[key]] = item[key]; // 如 { '设备名称': item.deviceName }
    });
    return formattedItem;
  });

  // 2. 创建工作簿和工作表
  const worksheet = XLSX.utils.json_to_sheet(exportData);
  const workbook = XLSX.utils.book_new();
  XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');

  // 3. 生成Excel文件并下载
  const excelBuffer = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });
  const blob = new Blob([excelBuffer], { type: 'application/octet-stream' });
  saveAs(blob, `${fileName}.xlsx`);
}
